Skip to main content

指针:SUPER

SUPER 指针是用于面向对象编程的特殊变量。

SUPER 是功能块的指针,指向生成功能块的基本功能块实例。这 SUPER 指针还允许访问基功能块(基类)的方法的实现。一个 SUPER 指针对每个功能块自动可用。您可以使用 SUPER 仅在方法和相关的功能块实现中。

指针的解引用: SUPER^

使用 SUPER 指针:随着 SUPER 关键字,您调用的方法在基本类或父类的实例中有效。

98. 例子

英石

SUPER^.METH_DoIt();

FBD/CFC/LD

_cds_img_pointer_super_fbd.png


99. 例子

用于 SUPERTHIS 指针

FUNCTION_BLOCK FB_Base
VAR_OUTPUT
        iCnt : INT;
END_VAR

METHOD METH_DoIt : BOOL
iCnt := -1;

METHOD METH_DoAlso : BOOL
METH_DoAlso := TRUE;

FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_OUTPUT
        iBase : INT;
END_VAR

THIS^.METH_DoIt();  //Call of the methods of FB_1
THIS^.METH_DoAlso();

SUPER^.METH_DoIt();   //Call of the methods of FB_Base
SUPER^.METH_DoAlso();
iBase := SUPER^.iCnt;

METHOD METH_DoIt : BOOL
iCnt := 1111;
METH_DoIt := TRUE;

PROGRAM PLC_PRG
VAR
    myBase : FB_Base;
    myFB_1 : FB_1;
    iTHIS : INT;
    iBase : INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;


提示

THIS 尚未针对指令列表 (IL) 实现。